OpenStack Swift
今天開始時我要講一件令我非常難過的事情,如果有持續在看我文章的人就會看到我昨天沒有發文,但其實不然因為我昨天有完成文章,送出也沒有出現問題,今天看了一下寫說發文中斷心中滿是香菇,我看一下文章發現他其實存在但是他是草稿但我明明昨天有案送出阿,也沒有錯誤跳窗啊?!結果瀏覽整個頁面之後發現了一件事情「Tag 超過5個」哭哭就因為這樣發文失敗了,哀~希望有補救的辦法
好吧切回主題,我今天之所以要講Swift的原因就是他是OpenStack的始祖套件之一,雖然他不是核心套件但在30天中盡量會教大家怎麼安裝使用套件。
那先來介紹一下Swift的運作原理
↑取至Seagte
這張圖可以看到主要套件分成兩部分Proxy與區域端
Controller安裝步驟
一、先在KeyStone服務上進行註冊
使用admin帳號登入
建立Useropenstack user create --domain default --password-prompt swift
加進服務帳號中openstack role add --project service --user swift admin
啟用服務openstack service create --name swift --description "OpenStack Object Storage" object-store
啟用API
openstack endpoint create --region RegionOne \
object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s
openstack endpoint create --region RegionOne \
object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s
openstack endpoint create --region RegionOne \
object-store admin http://controller:8080/v1
二、安裝套件
apt-get install swift swift-proxy python-swiftclient python-keystoneclient
python-keystonemiddleware memcached -y
那會發現有一些套件其實前面有裝過,因為他得運用範圍不只OpenStack喔
三、開始設定
先把預設設定檔下載後放入指定位置
/etc/swift/proxy-server.conf
詳細的功能官方都有幫我們說明了
裡面有幾樣設定要看一下
user = 使用者名稱
swift_dir = swift的設定目錄
pipeline = 擴充功能
※官方說要把tempurl tempauth 這兩個移除並加入authtoken keystoneauth
但如果想要做SAIO的話請把前面兩個留下,但後面兩個一樣要加
account_autocreate = True 自動創建帳戶
operator_roles = admin ,user
以下請依照KeyStone的需求進行填寫
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = swift
password = SWIFT_PASS
delay_auth_decision = True
以下請依照memcache的設定進行填寫
[filter:cache]
use = egg:swift#memcache
memcache_servers = controller:11211
Storage安裝步驟
這邊會分成兩步驟解說
本範例使用兩台機器並各配置不含系統的兩顆硬碟
一、安裝套件
apt-get install xfsprogs rsync -y
二、格式化硬碟成XFS(Wiki)格式
mkfs.xfs /dev/硬碟名稱
三、創建欲掛載的資料夾
mkdir -p /srv/node/硬碟名稱
結束後要記得mount喔
四、設定硬碟的開機參數
新增到/etc/fstab
硬碟名稱 掛載連結 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
五、設定同步選項
新增
sudo vim /etc/rsyncd.conf
uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = MANAGEMENT_INTERFACE_IP_ADDRESS //管理的IP位置
[account]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/account.lock
[container]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/container.lock
[object]
max connections = 2
path = /srv/node/
read only = False
lock file = /var/lock/object.lock
6、設定同步
sudo vim /etc/default/rsync
RSYNC_ENABLE=true
7、重啟服務
sudo service rsync restart
那今天先到這邊喔~明天再戰
今日問了課服之後和我說可以重新辦一個題目寫,因此我這幾天會將我全部的文章進行轉移。
我會再給新的連結的
希望大家可以在這一個月中讀到非常多的應用技巧,那如果有問題可以以私訊我的方式是使用問題回復,我會盡可能地回答問題,那會在後面統一做回覆,或者如果有想知道的相關的應用也可以提出討論喔。